<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>准备_回调函数的分类</title>
</head>
<body>
<script>
    /*
    前序知识：什么是回调？--- 我们定义的，我们没有调用，最终执行了。
        1. 同步的回调函数
            理解：立即在主线程上执行，不会放入回调队列中。
            例子：数组遍历相关的回调函数 / Promise 的 executor 函数。
        2. 异步的回调函数
            理解：不会立即执行，会放入回调队列中以后执行。（以后执行：主线程忙完后，再执行回调队列中的回调）
            例子：定时器回调 / Ajax 回调 / Promise 的成功、失败的回调
     */

    // 同步的回调函数
    let arr = [1, 3, 5, 7, 9]
    arr.forEach((item) => {
        console.log(item)
    })
    console.log('主线程的其它代码')

    // 异步的回调函数
    setTimeout(() => {
        console.log('@')
    }, 0)
    console.log('主线程...')
</script>
</body>
</html>
